查看原文
其他

IDF16:NVMe Over Fabric、SPDK和双控存储元年

2016-04-15 唐僧 企业存储技术
点击上方“企业存储技术”可以订阅哦

 

昨天写了一篇软件相关的《IDF16:解读Ceph百万IOPS测试及优化》,今天接着写硬件方面的学习心得和自己一些粗浅的理解,这次的参考资料来自《在存储转换趋势中胜出的必备知识:准备在客户端和数据中心采用NVM Express PCI Express》。

 

首先响应热心朋友,我把目前能下载到的全部IDF 2016技术课程中文资料做了一个网盘共享。

 

链接:http://pan.baidu.com/s/1dE8HIrZ(也可点击本文底部“阅读原文”下载)。

 

同时也列出官网下载链接 http://myevent.opusteam.com/sessions/0B9F4191-1C29-408A-8B61-65D7520025A8/12/5?update=true#,里面还包括每节课程的英文资料下载。

 


 

如上图,今年对NVMe生态系统的一些利好因素包括:双端口SSD相关、NVMe Over Fabric互连、SPDK、被主要云计算提供商使用、PCIe Switch有多个供应商,以及基于NVMeHBARAID卡。

 

关于PCIe Switch,其实芯片早就有不止一家供应商——PMCIDT)和AvagoPLX,交换机产品我在78年前就曾见过,不过那时还不成熟。目前公开销售的PCIe交换机产品仍不多见,其面临的问题和SAS类似,一个是不适合做长距离连接;还有一点我在《OCP峰会:PCIe SSD版本的Open Vault存储机箱,没有了SAS的双端口》中曾经提到:“目前的PCIe3.0 Switch芯片最高lane数量应该就是9697。”

 

注:SAS Switch芯片目前最多68 lane,延伸阅读:《分布式 or SAN文件系统、SAS交换为何普及难?

 

传统RAID能否胜任NVMe SSD

 


 

我曾经看到不止一位朋友提出同样的问题:“SAS盘有RAID卡,PCIe SSD有吗?”

 

大家都觉得技术上应该不是问题,不过传统的嵌入式RoC处理器能否充分发挥出PCIe/NVMe闪存的性能?SFF-8639的驱动器也是刚普及不久嘛。

 

我手里正好有一份今年2月相关的新闻稿,摘录一段话:“NVMe Storage Adapters(HBA/RAID): As the leading provider of SAS/SATA storagecontrollers, HBA, and RAID adapters, Broadcom is sampling the industry’s first combined NVMe/SAS/SATAstorage controllers.

 

注:收购Broadcom之后Avago/LSI换品牌了,用的应该还是MegaRAID技术。

 

所谓Intel搞的RSTe软件RAID,应该就是操作系统中的一个软件(类似md-raid),目前在RAID 5 Rebuild时还无法保证掉电的数据完整性,猜测是用了临时内存

 


 

在上面这张图表里,Intel“特地”找了希捷SAS SSD作为对比,因此我对左边绿色的性能数字不太关心。4DC P3700 RAID510IOPS我觉得应该是随机写,这里CPU肯定不是瓶颈,IntelSSD单盘随机写指标是17.5万,也就是说写惩罚仍然存在,而且传统SSD RAID的效率似乎难以达到HDD的水平

 

2016NVMe over Fabric元年

 


 

这里再次指出了PCIe直连的问题——扩展性,此外当前使用光纤接口的RDMA存储网络,比如iSERSRP仍然使用了SCSI协议,面对下一代NVM(如3D XPoint)延时问题会更突出,因此行业需要NVM Expressover Fabrics

 


 

NVM over Fabrics除了能跑在RoCEIB网络上,也支持iWARPFC,比如下图中的QLogic。另外这里的下一代光纤指的是Intel新搞的100Gb/s Omni-Path互连吧?

 


FC不死?——QLogic计划推出FC-NVMe适配卡

 


 

如右图,一个NVM子系统划分多个命名空间(相当于LUN),一个命名空间还可以通过多个NVMe控制器映射出去,达到“双控双活”的效果。

 


 

NVMe over Fabrics主要的概念文档正在起草阶段,准备在2016年看到初步的应用。如果要接近今天FC/SAS在存储系统前/后端连接的成熟度,估计要2-3年或以上。参照NVMe之前的发展进度,Intel喊着Fusion-io不行也过去好几年了。

 

SPDK用户态NVMe驱动、Ceph演示

 


 

上图中蓝色部分是驱动器读延时,在机械硬盘时代软件栈几乎不需要优化,而到了Optane(听说是3D XPoint Memory做缓存的闪存盘)和新一代高性能NVM介质到来时,软件即将成为瓶颈。

 

扩展阅读:《从技术到应用:揭开3D XPoint Memory迷雾

 


 

为了达到端到端用户态无锁poolling模式替代传统内核态中断处理,我理解Intel DPDK在这里应该是第一步实现了网络驱动,NVMeCBDMA用户态存储驱动已经开源,计划目标看来是要将NVMfiSCSITarget整合

 


 

这里列出了SPDK用户态polled模式NVMe驱动的好处,包括消除了中断和系统的损耗、使用大内存页和静态缓存等。使用FIO工具测试4P3700 SSD的对比结果是:传统内核态NVMe驱动,Intel Xeon CPU单个核心能够支撑的4KB随机读性能只有25IOPS,而换用SPDK驱动之后提升到高达180

 


(点击可放大)

 

提到DPDK+SPDK用户态存储应用,很容易让我想到有国内Ceph第一人之称的王豪迈,他目前担任XSKYCTO,上面的照片拍摄自该公司前不久举行的发布会。

 

手机的效果有限,右边红框部分可以看到ceph-osdCPU占用率超过200%(核心占用率),而与此同时每秒中断数量只有2000。据现场的工程师表示,在将Ceph改造为用户态之前,同一测试的CPU核心占用率低于100%,并且中断数量高出几个数量级。

 


XSKY全用户态Ceph演示平台使用了戴尔PowerEdge R730服务器,以及Mellanox40Gb RoCE网络互连环境。

 


 

上图引用自冬瓜哥在2015存储峰会的分享资料《IO协议栈前沿技术研究动态》,其中也提到了用户态(Polling模式)的优劣势,供大家参考。

 

双端口NVMe阵列HA之外还有差异化功能

 

早在前年撰写《破解PCIe SSD进化:从踩坑到解决方案》的最后一个章节时,我就曾讨论过用于双控存储的双端口PCIe SSD。而不久前Intel已经发布了支持NVMe双端口的D3600D3700

 


 

上图中写了双端口PCIe SSD主要用于存储厂商的阵列,但也可以是一些共享驱动器的集群存储软件环境,比如ZFS、微软Storage Spaces等。

 


 

这里我们拿两台戴尔服务器连接到同一个MD系列SAS JBOD存储扩展机箱为例,该无单点故障的硬件方案即可运行前面说的Nexenta ZFS和微软的带有RAID算法的存储软件。一旦换成PCIe JBODSSD性能就可以更好地发挥。

 


 

上图虚线中就是使用PCIe SSD的双控存储系统,其冗余级别可以达到传统SAS后端连接的水平,包括PCIe Switch在内都没有单点故障

 


 

我们有必要讲一下这里的差异化功能。由于PCIe SSD具备传统硬盘没有的可定制化能力,因此可以在盘间使用较小的粒度(比如颗粒级别)进行数据管理,让我想起了EMC DSSD的特色RAID保护。此外,控制器也可以管理到SSD上的缓存(在以往盘就是个黑盒),因此可以把I/O队列从控制器缓存上转移过去,降低延时。如果NVMe开放了这些API,就有点软件定义Flash的思路吧:)

 


 

最后看两款产品,或者说参考系统。来自台湾ODM纬创这个比较简单,就是在4U机箱中把24Intel双端口D3700 SSD通过背板同时连接到2Host节点。由于没有任何协议的转换和各种软件开销,所以裸性能比较好看。

 


 

这个E8 storage就是一台NVMe阵列了。通过40GbE连接4台主机,没有说跑什么协议。由于具备冗余控制器和网络连接,它的性能比前面那套系统低了一些。看来国外又有新一轮闪存初创公司的机会了。

 

最后再来看看应该是第一个正式发布的NVMe over Fabric系统——EMC DSSD D5RACK-SCALE 闪存存储平台。

 


 

在《解析DSSD对象机制:内存API Atomic读写再现》一文中,我曾经介绍过它的原生API DMA访问和PCIe MultiCast写入——即“用户从客户端使用原生API读取DSSD时,数据流是绕过OS KernelDMA方式。而且数据是从Flash Module上的DRAM缓存经过I/O Module直接传输到DSSDClient Card,这个过程也绕开了ControlModule上的x86 CPU

 

DSSD除了采取定制化硬件之外,软件方面也很有特色,原生访问API是对象方式,同时兼容块、文件以及像Hadoop这样的专用插件。

 


:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。进一步交流技术,可以加我的QQ/微信:490834312

 

请在本公众号发布2天后,才能转载本文,欢迎转发链接分享。尊重知识,请必须全文转载,并包括本行及如下二维码。

 

感谢您的阅读和支持!《企业存储技术》微信公众号:huangliang_storage


长按二维码可直接识别关注


点击下方“阅读原文”,可下载IDF 2016技术课程中文资料↓↓↓

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存